前言
昨天我們學會了如何使用 Webhook 來處理即時的外部事件。但很多時候,我們需要的是在「特定時間」自動執行的任務,例如每日的數據同步、每週的報告生成,或是每月的帳單提醒。這時候,排程觸發器 (Schedule Trigger) 就是我們最好的朋友。
今天,我們將實作一個非常實用的辦公室自動化情境:「每日早上 9 點,自動抓取一份數據,並透過 Email 寄送報表給主管。」
為了簡化情境,我們的「數據」會先用固定的文字代替,重點在於展示整個排程與郵件發送的流程。
排程觸發器 (Schedule Trigger) 介紹
n8n 內建的 Schedule 觸發器 (在舊版中可能叫做 Cron),讓你可以像設定鬧鐘一樣,精確地控制工作流的執行時間。它支援多種模式:
-
Every Hour/Day/Week/Month: 簡單的固定間隔。
-
Custom (Cron Expression): 使用標準的 Cron 表達式,可以定義非常複雜的時間規則 (例如:每個上班日的下午 3:15)。
什麼是 Cron 表達式? Cron 表達式是一個由 5 或 6 個欄位組成的字串,用來定義時間排程。
實作流程
我們的目標是建立一個 n8n 工作流,它會:
-
設定排程在每天早上 9 點觸發。
-
(模擬)準備報表內容。
-
透過 Email 節點將報表內容寄出。
步驟 1:建立排程觸發器
- 建立一個新的 n8n Workflow(我們在 Day 25 實作過)。
- 系統預設的觸發器就是 Schedule。如果不是,可以手動新增 Schedule 節點。
- 在 Schedule 節點的設定中:
-
Trigger Interval: 選擇 Hours。
-
Hours Between Triggers: 設定為 9。
-
Minute: 設定為 0。
-
Timezone: 非常重要! 務必選擇你所在的時區,例如 Asia/Taipei,否則時間會不準確。
步驟 2:準備報表內容 (使用 Set 節點)
在真實世界,我們可能會先去串接資料庫或 API 來取得報表數據。今天我們先用 Set 節點來模擬這個過程。Set 節點的功能很單純,就是建立或修改工作流中的資料。
- 在 Schedule 節點後方點擊 +,新增一個 Set 節點。
- 在 Set 節點的設定中:
- 點擊 Add Value。
-
Name: 輸入一個變數名稱,例如 reportContent。
-
Value: 輸入你想要寄送的報表內容。你可以使用 Markdown 語法來美化格式。
### 每日銷售摘要 (2025-10-27)
Hi Team,
以下是昨日的銷售數據:
**總訂單數**: 120
**總銷售額**: $35,000
**新註冊用戶**: 85
祝有美好的一天!
步驟 3:設定 Email 節點
最後,我們要將準備好的內容寄出去:
- 在 Set 節點後方點擊 +,新增 Send Email 節點。
-
Credential: 第一次使用需要設定你的 Email 寄送服務。你可以選擇:
-
SMTP: 最通用的方式,適用於 Gmail, Outlook 等大多數郵件服務。你需要填寫 SMTP 主機、帳號、密碼 (注意:Gmail 可能需要使用「應用程式密碼」)。
-
SendGrid / Mailgun 等: 如果你有使用專業的 Email API 服務,可以直接選擇並填入 API Key。
-
To: 填寫收件人的 Email 地址,例如 manager@example.com。
-
Subject: 郵件主旨,可以動態加入日期。我們用表達式:每日銷售報表 - {{ new Date().toLocaleDateString('zh-TW') }}。
-
HTML: 勾選此項,這樣我們的 Markdown 內容才能被正確渲染成漂亮的格式。
-
Text: 郵件內容。點擊 </> 圖示,從 Nodes > Set > Output Data > JSON 中,拖曳 reportContent 變數過來。它的值會是 {{ $json.reportContent }}。
以上步驟可以參考以下圖示(實際 Email 設定請根據你的實際環境來設定!):


步驟 4:測試與啟動
- 點擊 Send Email 節點的 Execute Node,n8n 會立即執行一次寄送。去收件夾檢查看看是否收到信,以及格式是否正確。
- 確認一切無誤後,點擊畫面右上角的 Active 開關,正式啟用工作流。
從現在開始,這個工作流就會像個忠實的員工,每天早上 9 點準時幫你把報表寄出去!
結語
排程觸發是自動化的基礎。學會了它,你就解鎖了無數的可能性:
-
每日天氣預報提醒:串接天氣 API,每天早上出門前寄送提醒。
-
每週備份資料庫:定時執行資料庫備份腳本。
-
每月檢查網站狀態:定時爬取公司網站,確認所有頁面都正常運作。
明天,我們將更進一步,學習如何主動 串接外部 API,從 Google Calendar 抓取資料,並打造一個個人化的行程提醒工具!